/**
 * 发送get请求
 * @param {string} url 请求地址
 * @param {object} params 请求参数
 * @param {string|undefined} type 返回的接口数据类型
 * @param {object} headers 自定义请求头
 * @returns Promise
 */

function get(url,params,type,headers={}){
    //过滤
    let temp=[]
    for(let key in params){
        temp.push(`${key}=${params[key]}`)
    }
    let paramsFilter=temp.join("&")
    const p=new Promise((resolve,reject)=>{
        const xhr=new XMLHttpRequest
        xhr.onreadystatechange=()=>{
            if(xhr.readyState === 4){
                if(xhr.status === 200){
                    let res=xhr.responseText
                    if(type === "json") res=JSON.parse(res)
                    resolve(res)
    
                }else{
                    reject(xhr.status)
    
                }
            }
        }
        xhr.open("get",`${url}?${paramsFilter}`)
        for(let key in headers){
            xhr.setRequestHeader(key,headers[key])

        }
        xhr.send(null)
    
    })
    return p

}
console.log("------------------------------------------------------------------------------------");

/**
 * 发送post请求
 * @param {string} url 请求地址
 * @param {object} params 请求参数
 * @param {string|undefined} type 返回的接口数据类型
 * @param {object} headers 自定义请求头
 * @returns Promise
 */

 function post(url,params,type,headers={}){
    //过滤
    let temp=[]
    for(let key in params){
        temp.push(`${key}=${params[key]}`)
    }
    let paramsFilter=temp.join("&")
    const p=new Promise((resolve,reject)=>{
        const xhr=new XMLHttpRequest
        xhr.onreadystatechange=()=>{
            if(xhr.readyState === 4){
                if(xhr.status === 200){
                    let res=xhr.responseText
                    if(type === "json") res=JSON.parse(res)
                    resolve(res)
    
                }else{
                    reject(xhr.status)
    
                }
            }
        }
        xhr.open("post",url)
        xhr.setRequestHeader("content-type","application/x-www-form-urlencoded")

        for(let key in headers){
            xhr.setRequestHeader(key,headers[key])

        }
        xhr.send(paramsFilter)
    
    })
    return p

}